import logging
from datetime import timedelta

from redis import Redis


# 将配置信息封装到config类中，统一管理
class Config():
    DEBUG = True  # 开启调试模式
    SQLALCHEMY_DATABASE_URI = "mysql://root:mysql@127.0.0.1:3306/info23"  # 数据库链接地址
    SQLALCHEMY_TRACK_MODIFICATIONS = False  # 是否追踪数据库变化
    REDIS_HOST = "127.0.0.1"  # redis绑定的ip  可以自定义配置key封装到config类中
    REDIS_PORT = 6379  # redis 监听的端口
    SESSION_TYPE = "redis"  # 设置session的存储地址
    SESSION_REDIS = Redis(host=REDIS_HOST, port=REDIS_PORT)  # 设置redis操作对象
    SESSION_USE_SIGNER = True  # 设置session是否加密
    SECRET_KEY = "4nzsf/JsGa7qClx/DCYWpiT+zaIpdpHyBN8af8/mli3M7ujZYKki847gjemWLPiu"  # 设置应用秘钥
    PERMANENT_SESSION_LIFETIME = timedelta(days=7)  # 设置session过期时间
    SQLALCHEMY_COMMIT_ON_TEARDOWN = True#每次请求结束，会自动提交数据库


# 不同的代码环境应该使用不同的配置信息（陪置子类化）
class DevelopmentConfig(Config):  # 开发环境：项目开发阶段需要的代码环境
    DEBUG = True
    REDIS_HOST = "127.0.0.1"
    REDIS_PORT = 6379
    LOG_LEVEL=logging.DEBUG


class ProductionConfig(Config):  # 生产环境：项目上线后需要的代码环境（用户可以外站访问）
    DEBUG = False
    LOG_LEVEL=logging.ERROR


config_dict = {"dev": DevelopmentConfig, "pro": ProductionConfig}
